using System;
using System.Collections;

namespace Com.CMS263.PO
{
	#region Guest

	/// <summary>
	/// Guest object for NHibernate mapped table 'Guest'.
	/// </summary>
	public class Guest
	{
		#region Member Variables
		
		protected int _id;
		protected string _userEmail;
		protected string _userName;
		protected string _userPass;
		protected DateTime _addDate;
		protected string _mobilePhone;
		protected int _state;
		protected decimal _balance;
        protected bool _isChecked;
        protected string _address;

		#endregion

		#region Constructors

		public Guest() { }

		public Guest( string userEmail, string userName, string userPass, DateTime addDate, string mobilePhone, int state, decimal balance )
		{
			this._userEmail = userEmail;
			this._userName = userName;
			this._userPass = userPass;
			this._addDate = addDate;
			this._mobilePhone = mobilePhone;
			this._state = state;
			this._balance = balance;	
		}

		#endregion

		#region Public Properties

		public virtual int Id
		{
			get {return _id;}
			set {_id = value;}
		}

		public  virtual string UserEmail
		{
			get { return _userEmail; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for UserEmail", value, value.ToString());
				_userEmail = value;
			}
		}

		public  virtual string UserName
		{
			get { return _userName; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for UserName", value, value.ToString());
				_userName = value;
			}
		}

		public  virtual string UserPass
		{
			get { return _userPass; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for UserPass", value, value.ToString());
				_userPass = value;
			}
		}

		public  virtual DateTime AddDate
		{
			get { return _addDate; }
			set { _addDate = value; }
		}

		public  virtual string MobilePhone
		{
			get { return _mobilePhone; }
			set
			{
				if ( value != null && value.Length > 11)
					throw new ArgumentOutOfRangeException("Invalid value for MobilePhone", value, value.ToString());
				_mobilePhone = value;
			}
		}

		public  virtual int State
		{
			get { return _state; }
			set { _state = value; }
		}

		public  virtual decimal Balance
		{
			get { return _balance; }
			set { _balance = value; }
		}
        /// <summary>
        /// �Ƿ����
        /// </summary>
        public virtual bool IsChecked
        {
            get { return _isChecked; }
            set { _isChecked = value; }
        }
        /// <summary>
        /// ��ַ
        /// </summary>
        public virtual string Address
        {
            get { return _address; }
            set
            {
                if (value != null && value.Length > 100)
                    throw new ArgumentOutOfRangeException("Invalid value for Address", value, value.ToString());
                _address = value;
            }
        }
		#endregion
	}
	#endregion
}